home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 05.zip / BS1 part 5 / SASC_6.0_Disk_4.adf / Compiler_Headers / Include / clib / exec_protos.h < prev    next >
C/C++ Source or Header  |  1992-07-30  |  8KB  |  170 lines

  1. #ifndef  CLIB_EXEC_PROTOS_H
  2. #define  CLIB_EXEC_PROTOS_H
  3. /*
  4. **    $Filename: clib/exec_protos.h $
  5. **    $Release: 2.04 Includes, V37.4 $
  6. **    $Revision: 36.11 $
  7. **    $Date: 91/11/06 $
  8. **
  9. **    C prototypes. For use with 32 bit integers only.
  10. **
  11. **    (C) Copyright 1990-1991 Commodore-Amiga, Inc.
  12. **        All Rights Reserved
  13. */
  14. #ifndef  EXEC_TYPES_H
  15. #include <exec/types.h>
  16. #endif
  17. #ifndef  EXEC_TASKS_H
  18. #include <exec/tasks.h>
  19. #endif
  20. /*------ misc ---------------------------------------------------------*/
  21. ULONG Supervisor( unsigned long (*userFunction)() );
  22. /*------ special patchable hooks to internal exec activity ------------*/
  23. /*------ module creation ----------------------------------------------*/
  24. void InitCode( unsigned long startClass, unsigned long version );
  25. void InitStruct( APTR initTable, APTR memory, unsigned long size );
  26. struct Library *MakeLibrary( APTR funcInit, APTR structInit,
  27.     unsigned long (*libInit)(), unsigned long dataSize,
  28.     unsigned long segList );
  29. void MakeFunctions( APTR target, APTR functionArray,
  30.     unsigned long funcDispBase );
  31. struct Resident *FindResident( UBYTE *name );
  32. APTR InitResident( struct Resident *resident, unsigned long segList );
  33. /*------ diagnostics --------------------------------------------------*/
  34. void Alert( unsigned long alertNum );
  35. void Debug( unsigned long flags );
  36. /*------ interrupts ---------------------------------------------------*/
  37. void Disable( void );
  38. void Enable( void );
  39. void Forbid( void );
  40. void Permit( void );
  41. ULONG SetSR( unsigned long newSR, unsigned long mask );
  42. APTR SuperState( void );
  43. void UserState( APTR sysStack );
  44. struct Interrupt *SetIntVector( long intNumber, struct Interrupt *interrupt );
  45. void AddIntServer( long intNumber, struct Interrupt *interrupt );
  46. void RemIntServer( long intNumber, struct Interrupt *interrupt );
  47. void Cause( struct Interrupt *interrupt );
  48. /*------ memory allocation --------------------------------------------*/
  49. APTR Allocate( struct MemHeader *freeList, unsigned long byteSize );
  50. void Deallocate( struct MemHeader *freeList, APTR memoryBlock,
  51.     unsigned long byteSize );
  52. APTR AllocMem( unsigned long byteSize, unsigned long requirements );
  53. APTR AllocAbs( unsigned long byteSize, APTR location );
  54. void FreeMem( APTR memoryBlock, unsigned long byteSize );
  55. ULONG AvailMem( unsigned long requirements );
  56. struct MemList *AllocEntry( struct MemList *entry );
  57. void FreeEntry( struct MemList *entry );
  58. /*------ lists --------------------------------------------------------*/
  59. void Insert( struct List *list, struct Node *node, struct Node *pred );
  60. void AddHead( struct List *list, struct Node *node );
  61. void AddTail( struct List *list, struct Node *node );
  62. void Remove( struct Node *node );
  63. struct Node *RemHead( struct List *list );
  64. struct Node *RemTail( struct List *list );
  65. void Enqueue( struct List *list, struct Node *node );
  66. struct Node *FindName( struct List *list, UBYTE *name );
  67. /*------ tasks --------------------------------------------------------*/
  68. APTR AddTask( struct Task *task, APTR initPC, APTR finalPC );
  69. void RemTask( struct Task *task );
  70. struct Task *FindTask( UBYTE *name );
  71. BYTE SetTaskPri( struct Task *task, long priority );
  72. ULONG SetSignal( unsigned long newSignals, unsigned long signalSet );
  73. ULONG SetExcept( unsigned long newSignals, unsigned long signalSet );
  74. ULONG Wait( unsigned long signalSet );
  75. void Signal( struct Task *task, unsigned long signalSet );
  76. BYTE AllocSignal( long signalNum );
  77. void FreeSignal( long signalNum );
  78. LONG AllocTrap( long trapNum );
  79. void FreeTrap( long trapNum );
  80. /*------ messages -----------------------------------------------------*/
  81. void AddPort( struct MsgPort *port );
  82. void RemPort( struct MsgPort *port );
  83. void PutMsg( struct MsgPort *port, struct Message *message );
  84. struct Message *GetMsg( struct MsgPort *port );
  85. void ReplyMsg( struct Message *message );
  86. struct Message *WaitPort( struct MsgPort *port );
  87. struct MsgPort *FindPort( UBYTE *name );
  88. /*------ libraries ----------------------------------------------------*/
  89. void AddLibrary( struct Library *library );
  90. void RemLibrary( struct Library *library );
  91. struct Library *OldOpenLibrary( UBYTE *libName );
  92. void CloseLibrary( struct Library *library );
  93. APTR SetFunction( struct Library *library, long funcOffset,
  94.     unsigned long (*newFunction)() );
  95. void SumLibrary( struct Library *library );
  96. /*------ devices ------------------------------------------------------*/
  97. void AddDevice( struct Device *device );
  98. void RemDevice( struct Device *device );
  99. BYTE OpenDevice( UBYTE *devName, unsigned long unit,
  100.     struct IORequest *ioRequest, unsigned long flags );
  101. void CloseDevice( struct IORequest *ioRequest );
  102. BYTE DoIO( struct IORequest *ioRequest );
  103. void SendIO( struct IORequest *ioRequest );
  104. BOOL CheckIO( struct IORequest *ioRequest );
  105. BYTE WaitIO( struct IORequest *ioRequest );
  106. void AbortIO( struct IORequest *ioRequest );
  107. /*------ resources ----------------------------------------------------*/
  108. void AddResource( APTR resource );
  109. void RemResource( APTR resource );
  110. APTR OpenResource( UBYTE *resName );
  111. /*------ private diagnostic support -----------------------------------*/
  112. /*------ misc ---------------------------------------------------------*/
  113. void RawDoFmt( UBYTE *formatString, APTR dataStream, void (*putChProc)(),
  114.     APTR putChData );
  115. ULONG GetCC( void );
  116. ULONG TypeOfMem( APTR address );
  117. ULONG Procure( struct Semaphore *semaport, struct Message *bidMsg );
  118. void Vacate( struct Semaphore *semaport );
  119. struct Library *OpenLibrary( UBYTE *libName, unsigned long version );
  120. /*--- functions in V33 or higher (distributed as Release 1.2) ---*/
  121. /*------ signal semaphores (note funny registers)----------------------*/
  122. void InitSemaphore( struct SignalSemaphore *sigSem );
  123. void ObtainSemaphore( struct SignalSemaphore *sigSem );
  124. void ReleaseSemaphore( struct SignalSemaphore *sigSem );
  125. ULONG AttemptSemaphore( struct SignalSemaphore *sigSem );
  126. void ObtainSemaphoreList( struct List *sigSem );
  127. void ReleaseSemaphoreList( struct List *sigSem );
  128. struct SignalSemaphore *FindSemaphore( UBYTE *sigSem );
  129. void AddSemaphore( struct SignalSemaphore *sigSem );
  130. void RemSemaphore( struct SignalSemaphore *sigSem );
  131. /*------ kickmem support ----------------------------------------------*/
  132. ULONG SumKickData( void );
  133. /*------ more memory support ------------------------------------------*/
  134. ULONG AddMemList( unsigned long size, unsigned long attributes,
  135.     unsigned long pri, APTR base, UBYTE *name );
  136. void CopyMem( APTR source, APTR dest, unsigned long size );
  137. void CopyMemQuick( APTR source, APTR dest, unsigned long size );
  138. /*------ cache --------------------------------------------------------*/
  139. /*--- functions in V36 or higher (distributed as Release 2.0) ---*/
  140. void CacheClearU( void );
  141. void CacheClearE( APTR address, unsigned long length, unsigned long caches );
  142. ULONG CacheControl( unsigned long cacheBits, unsigned long cacheMask );
  143. /*------ misc ---------------------------------------------------------*/
  144. APTR CreateIORequest( struct MsgPort *port, unsigned long size );
  145. void DeleteIORequest( APTR iorequest );
  146. struct MsgPort *CreateMsgPort( void );
  147. void DeleteMsgPort( struct MsgPort *port );
  148. void ObtainSemaphoreShared( struct SignalSemaphore *sigSem );
  149. /*------ even more memory support -------------------------------------*/
  150. APTR AllocVec( unsigned long byteSize, unsigned long requirements );
  151. void FreeVec( APTR memoryBlock );
  152. APTR CreatePrivatePool( unsigned long requirements, unsigned long puddleSize,
  153.     unsigned long puddleThresh );
  154. void DeletePrivatePool( APTR poolHeader );
  155. APTR AllocPooled( unsigned long memSize, APTR poolHeader );
  156. void FreePooled( APTR memory, APTR poolHeader );
  157. /*------ misc ---------------------------------------------------------*/
  158. ULONG AttemptSemaphoreShared( struct SignalSemaphore *sigSem );
  159. void ColdReboot( void );
  160. void StackSwap( struct StackSwapStruct *newStack );
  161. /*------ task trees ---------------------------------------------------*/
  162. void ChildFree( APTR tid );
  163. void ChildOrphan( APTR tid );
  164. void ChildStatus( APTR tid );
  165. void ChildWait( APTR tid );
  166. /*------ future expansion ---------------------------------------------*/
  167. APTR CachePreDMA( APTR address, ULONG *length, unsigned long flags );
  168. APTR CachePostDMA( APTR address, ULONG *length, unsigned long flags );
  169. #endif     /* CLIB_EXEC_PROTOS_H */
  170.